/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package generation;

import ASAInst.ASAInstFonction;
import exception.FonctionNonDefinieException;
import java.util.HashMap;
import java.util.Map;

/**
 *
 * @author FM & KB
 */
public class GestionFonctions {

    private static Map<String, ASAInstFonction> mapFonctions = null;

    private GestionFonctions() {
        //mapFonctions = new HashMap<String, ASAInstFonction>();
    }

    public static void ajouterFonction(ASAInstFonction fonction) {
        if(mapFonctions == null){
            mapFonctions = new HashMap<String, ASAInstFonction>();
        }
        mapFonctions.put(fonction.getNomFonction(), fonction);
    }

    public static ASAInstFonction getFonction(String nomFonction)
            throws FonctionNonDefinieException {
        if (!mapFonctions.containsKey(nomFonction)) {
            throw new FonctionNonDefinieException(nomFonction);
        }
        return mapFonctions.get(nomFonction);
    }
    
    public static void reinitialiser(){
        if(mapFonctions != null){
            mapFonctions.clear();
            mapFonctions = null;
        }
    }
}